import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JList;
import javax.swing.JButton;
import javax.swing.JLabel;

import org.apache.torque.TorqueException;

import torque.generated.Vaisseau;


public class VueChoixVaisseau extends Vue{
	private JList list;
	private JButton btnChoisir;
	private JLabel lblChoisissezVotreVaisseau;
	private JButton btnAnnuler;
	private List<Vaisseau> vaisseaux;
	private Vector<String> vectNomVaisseaux = new Vector<String>();
	
	public VueChoixVaisseau(Controleur controleur, final VueLancementJeu vLancementJeu, final Boolean premier) throws TorqueException {
		super(controleur);
		setTitle("Choix du vaisseau:StarAttack");
		// Affichage de la fenêtre non redimensionable
		setLocationRelativeTo(this.getParent());
		setVisible(true);
		setResizable(false);
		// Affectation de la dimension minimale pour la fenêtre
		Dimension dimMini = new Dimension();
		dimMini.height = 300;
		dimMini.width = 500;
		setMinimumSize(dimMini);
		// Ajout du layout a la fenêtre (position absolue)
		getContentPane().setLayout(null);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(12, 12, 253, 235);
		getContentPane().add(scrollPane);
		
		list = new JList();
		scrollPane.setViewportView(list);
		
		btnChoisir = new JButton("Choisir");
		btnChoisir.setBounds(277, 77, 137, 25);
		getContentPane().add(btnChoisir);
		btnChoisir.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				if (premier){
					try {
						IO.Message("Vous avez sélectionné le vaisseau : " + (String) list.getSelectedValue());
						vLancementJeu.setVaisseauJ1(getControleur().getVaisseau((String) list.getSelectedValue()));
						vLancementJeu.setVisible(true);
						vLancementJeu.setEnabled(true);
						getControleur().fermerVue(VueChoixVaisseau.this);
					} catch (TorqueException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				} else
					try {
						IO.Message("Vous avez sélectionné le vaisseau : " + (String) list.getSelectedValue());
						vLancementJeu.setVaisseauJ2(getControleur().getVaisseau((String) list.getSelectedValue()));
						vLancementJeu.setVisible(true);
						vLancementJeu.setEnabled(true);
						getControleur().fermerVue(VueChoixVaisseau.this);
					} catch (TorqueException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
			}
		});
		
		lblChoisissezVotreVaisseau = new JLabel("Choisissez votre vaisseau :");
		lblChoisissezVotreVaisseau.setBounds(283, 14, 203, 15);
		getContentPane().add(lblChoisissezVotreVaisseau);
		
		btnAnnuler = new JButton("Annuler");
		btnAnnuler.setBounds(277, 139, 117, 25);
		btnAnnuler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// TODO Checker la méthode pour revenir a vueLancementJeu
				getControleur().fermerVue(VueChoixVaisseau.this);
				try {
					vLancementJeu.setEnabled(true);
					vLancementJeu.setVisible(true);
					getControleur().fermerVue(VueChoixVaisseau.this);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		getContentPane().add(btnAnnuler);
		
		vaisseaux = getControleur().getVaisseaux();
		Iterator<Vaisseau> itrVaisseaux = vaisseaux.iterator();
		while (itrVaisseaux.hasNext()){
			vectNomVaisseaux.add(itrVaisseaux.next().getNomv());
		}
		list.setListData(vectNomVaisseaux);
	}
}
